home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok71.lha / ROM20 / ROM20.dok < prev    next >
Text File  |  1993-08-15  |  26KB  |  743 lines

  1.  
  2. ROM20 V1.0   -   ein leistungsfähiger Tischrechner für den Amiga
  3. ----------------------------------------------------------------
  4.   Zuerst einige Merkmale in Stichworten:
  5.   - Das Programm ist vollständig in OBERON programmiert.
  6.   - Es läuft auf allen AMIGA-Modellen unter KS1.3 und OS2.0
  7.   - ROM20 benutzt die Shell oder ein eigenes CON:-Window zur Ein-
  8.     und Ausgabe. Daher ist insbesondere unter OS2.0 die Bedienung
  9.     recht komfortabel; es können wie in der Shell verschiedene
  10.     Fonts, Farben, Tastaturbelegungen usw. verwendet werden.
  11.   - ROM20 rechnet mit LONGREAL-Zahlen, daher 14-stellige Genauigkeit.
  12.   - ROM20 kennt neben +,-,*,/ auch den Potenzoperator ^
  13.   - ^ hat Vorrrang vor * und /, diese haben Vorrang vor + und -
  14.     2+3^2*4 = 2+((3^2)*4) = 38.0
  15.   - Alle wichtigen mathematischen Funktionen wie sin(), arcsin(),
  16.     exp(), fac() usw. sind implementiert.
  17.   - ROM20 kann mit Variablen rechnen. Diese Variablen können als
  18.     Textfile abgespeichert und wieder geladen werden.
  19.     Ausdrücke wie "sqrt(2.8*Geschwindigkeit)/Pi+sin(x2^7.91E-3
  20.     -Elektronenmasse)" können also berechnet werden.
  21.   - Das Ausgabeformat ist frei wählbar.
  22.   - Die Ausgabe kann zum Drucker oder in eine Datei kopiert werden.
  23.   - Statistische Funktionen wie Mittelwert oder Standardabweichung
  24.     stehen zur Verfügung.
  25.   - Auf jede Eingabe kann zusätzlich eine frei definierbare Formel
  26.     angewendet werden. Dadurch wird z.B. die Erstelliung von Werte-
  27.     tabellen sehr einfach.
  28.   - Das Programm kann von Shell und Workbench gestartet werden.
  29.   - Das Programm ist frei konfigurierbar. Die Konfiguration kann
  30.     abgespeichert werden und steht so beim nächsten Programmstart
  31.     sofort zur Verfügung.
  32.   - Das Programm ist nur ca. 38 kByte groß und residentfähig.
  33.  
  34.  
  35. COPYRIGHT
  36. ---------
  37. Dieses Programm ist KEIN Public Domain Programm! Alle Rechte liegen
  38. beim Autor. Diese Version von ROM20 darf nur in Verbindung mit einer
  39. unveränderten AMOK-Diskette verbreitet werden. Die Aufnahme von ROM20
  40. auf eine andere Diskettenserie oder irgendein sonstiger Vertrieb
  41. dieses Programms ist  nur mit meiner schriftlichen Genehmigung
  42. erlaubt. Insbesondere sind Modifikationen des Programms oder der
  43. Dokumentation, der Abdruck oder die Übersetzung und jede andere
  44. Vervielfältigung von Programm und Dokumentation untersagt.
  45. Grundsätzlich darf für eine Diskette auf der sich ROM20 befindet nur
  46. der Preis der Leerdiskette zuzüglich einer geringen Kopiergebühr
  47. verlangt werden. (In der Regel kostet eine FD-Diskette DM 1.60 +
  48. Porto) Der Autor behält sich das Recht vor, einzelnen Firmen oder
  49. Personen das Recht auf Verbreitung dieses Produktes zu untersagen!
  50.  
  51.  
  52. SHAREWARE
  53. ---------
  54. Dieses Programm ist Shareware. Das heißt sie bekommen mit dieser Disk
  55. die Vollversion des Programmes. Sie haben ca. zwei Wochen Zeit das
  56. Programm ausgiebig zu testen. Sollte Ihnen das Programm gefallen und
  57. sollten sie es auch weiterhin benutzen wollen, so müssen Sie mir die
  58. Sharewaregebühr in Höhe von 10 DM oder 5 US-Dollar schicken oder auf
  59. mein Girokonto Überweisen!
  60.  
  61. Meine Anschrift:
  62. Stefan Salewski
  63. Stolper Weg 3
  64. D-2160 Stade
  65. (Germany)
  66.  
  67. Mein Konto:
  68. Stadt-Sparkasse Stade
  69. Bankleitzahl 241 510 05
  70. Kontonummer 823864
  71.  
  72.  
  73. Wer das Programm sehr viel benutzt oder viel Geld hat kann mir auch
  74. gerne 20 DM schicken. Wenn jemand momentan sehr wenig Geld hat reichen
  75. auch 5 DM. Die Nutzung des Programms ohne Zahlung der Sharewaregebühr
  76. ist illegal und entspricht der Nutzung von Raubkopien.
  77.  
  78. (Natürlich hätte ich statt des voll funktionsfähigen Programms auch
  79. nur eine Demoversion veröffentlichen können. Die Vollversion wäre dann
  80. bei mir oder einem Händler zu beziehen. Durch den dadurch verbundenen
  81. Mehraufwand würde dann der Preis aber bei ca. 30 DM liegen!)
  82.  
  83.  
  84. Starten des Programms
  85. ----------------------
  86. ROM20 kann von der Workbench aus durch Doppelklick auf das Piktogramm
  87. oder aus der Shell durch Eingabe des Programmnamens gestartet werden.
  88. Das Programm braucht mindestens einen Stack von 14 kByte. Dieser Wert
  89. sollte im Icon des Programmes eingetragen sein. Beim Start aus der
  90. Shell muß man eventuell vor dem Starten des Programms den Stack mit
  91. "Stack 14000" entsprechend erhöhen.
  92.  
  93. Ist das Programm aus der Shell gestartet worden, so benutzt es das
  94. Shellfenster für seine Ein- und Ausgaben. Wird es von der Workbench
  95. aus gestartet, so wird ein eigenes CON-Fenster geöffnet. Position und
  96. Größe des Fensters sind in den ToolTypes des Icons festgelegt und
  97. können verändert werden. Wer noch mit Kickstart 1.3 arbeitet kann in
  98. den ToolTypes "Con:" durch "NewCon:" oder einen anderen Handler
  99. ersetzen um in dem Eingabewindow die gleichen Funktionen wie in der
  100. Shell nutzen zu können. ( Edieren der Eingabezeile, zurückholen der
  101. letzten Eingabe durch "Cursor Up" usw.)
  102.  
  103.  
  104. Bedienung
  105. ---------
  106. Ist das Programm gestartet, kann man einen mathematischen Ausdruck
  107. eintippen. Nach Betätigung der Returntaste wird er berechnet und
  108. ausgegeben. Einige Beispiele für mögliche Eingaben:
  109.  
  110. 1.23*sin(4.5)+Pi/epsilon
  111.  
  112. arcsin(3/2)-2.7E3^3.2
  113.  
  114. Die Ausdrücke dürfen folgendes enthalten:
  115.  
  116. Die mathematischen Operatoren +,-,*,/,^
  117. Zahlenkonstanten wie 1.23E-5, 3.14, 2
  118. Elementare Funktionen wie sin, exp, arctan
  119. Klammern (),[],{}
  120. Werte (engl. Values)
  121. (Leerzeichen in mathematischen Ausdrücken sind nicht erlaubt.)
  122.  
  123.  
  124. Werte (Variablen oder Konstanten)
  125. ---------------------------------
  126. Werte ist der Oberbegriff für Konstanten und Variablen. Man kann jedem
  127. Wort einen Wert zuweisen und dann damit rechnen. Die Wertzuweisung ist
  128. sehr einfach: Man tippt den Namen, dann = oder := und schließlich den
  129. nummerischen Ausdruck, der diesem Namen zugewiesen werden soll. Um
  130. beispielsweise die Werte Pi und SekundenProTag zu definieren gibt man
  131. ein:
  132.  
  133. Pi:=2*arcsin(1)
  134. SekundenProTag=60*60*24
  135.  
  136. Nun kann man mit diesen Werten rechnen wie mit normalen Zahlen.
  137.  
  138. Wertzuweisungen haben die Form
  139.  
  140. <name> =  <math. Ausdruck> [ ; Kommentar ]
  141. <name> := <math. Ausdruck> [ ; Kommentar ]
  142.  
  143. Der Name darf fast alle über die Tastatur erreichbaren Zeichen
  144. enthalten, die Operatoren +,-,*,/,^,:,= und Klammern sind allerdings
  145. nicht erlaubt. Außerdem darf den Name nicht mit einer Ziffer beginnen.
  146. Er darf aber Ziffern enthalten und auch mit einer Ziffer enden.
  147. Natürlich darf man für Werte nicht Namen verwenden, die schon für
  148. elementare Funktionen (sin, cos usw.) oder Kommandos (PrinterOn,
  149. Quit usw.), vergeben sind.
  150.  
  151. Wird nur das Gleichheitszeichen für die Wertzuweisung benutzt, so wird
  152. dieser Wert nicht abgespeichert. Das ist für unwichtige Werte sinnvoll.
  153. Wird dagegen der Zuweisungsoperator ":=" benutzt, so wird dieser Wert
  154. abgespeichert und kann beim nächsten Programmstart wieder verwendet
  155. werden. (Die Werte werden erst abgespeichert wenn man das Kommando
  156. SaveValues gibt, die Kommandos werden weiter unten erklärt.) Die
  157. Kommentare sind optional, man kann sie z.B. verwenden um zu notieren,
  158. auf welche Einheiten ein Wert bezogen ist usw. (Links und rechts
  159. von ":=", "=" und ";" dürfen beliebig viele Leerzeichen stehen.)
  160.  
  161.  
  162. Memory-Funktion
  163. ---------------
  164. Es gibt eine spezielle Variable mit dem Namen "#". Dieses Doppelkreuz
  165. bekommt jeweils das letzte Resultat zugewisen. So kann man bei
  166. Kettenrechnungen mit dem letzten Ergebnis sofort weiterechnen ohne es
  167. erneut eintippen zu müssen. Natürlich sollte man den Namen "#" nicht
  168. verwenden, um irgendwelche Zahlenwerte zu speichern, da dieser Wert ja
  169. bei jeder Rechnung verändert wird.
  170.  
  171.  
  172. Fehlermeldungen:
  173. ----------------
  174. Tritt irgendein Fehler auf, so wird darauf hingewiesen, anderenfalls
  175. wird nur das Ergebnis ausgegeben. Enthält der eingegebene Ausdruck
  176. undefinierte Werte, Klammerfehler oder anderen Unsinn, so bekommt man
  177. die Meldung "Error in Compile()". Auch bei der Berechnung können
  178. natürlich Fehler auftreten, beispielsweise eine Division durch Null
  179. oder eine Bereichüberschreitung (Ergebnis > MAX(LONGREAL)). Auch hier
  180. bekommt man eine Fehlermeldung, aus der man in der Regel erkennen kann
  181. um was für einen Fehler es sich handelt.
  182.  
  183.  
  184. Operatoren
  185. ----------
  186.  
  187. Es existieren 5 mathematische Operatoren:
  188.  
  189. Symbol  Bedeutung  Priorität
  190. ----------------------------
  191.  +      Plus        1
  192.  -      Minus       1
  193.  *      Mal         2
  194.  /      Durch       2
  195.  ^      Hoch        3
  196.  
  197. Mal und Durch hat also Vorrang vor Plus und Minus. Der Potenzoperator
  198. ^ hat Vorrang vor den übrigen vier Operatoren. (Dies ist allgemein
  199. üblich und unter den Begriff "Punkt- vor Strichrechnung" bekannt.
  200.  
  201. Einige Beispiele:
  202.  
  203. 2+3*4   = 14
  204. 2+3*4^2 = 50
  205.  
  206. Um andere Prioritäten festzulegen können selbstverständlich Klammern
  207. benutzt werden. Neben () können auch [] und {} benutzt werden.
  208.  
  209. Beispiel:
  210.  
  211. (2+3)*4 = 20
  212. (3+5)^2 = 64
  213.  
  214. Das Weglassen des Multiplizieroperators ist nicht erlaubt. Man darf
  215. also statt 4*Pi*e0 nicht 4Pie0 schreiben. (Manchmal findet man in
  216. Büchern Ausdrücke wie "1/4 Pi e0". Gemeint ist damit "1/(4*Pi*e0)".
  217. Dem weggelassenem Multiplikationsoperatoren wird also eine höhere
  218. Priorität als dem Divisionsoperator / zugeordnet. Da das Weglassen von
  219. Operatoren nicht erlaubt ist und Mal und Durch gleiche Priorität haben
  220. muß man also "1/(4*pi*e0)" schreiben.)
  221.  
  222.  
  223. Kommandos
  224. ---------
  225. Statt einen mathematischen Ausdruck einzutippen kann man auch ein
  226. Kommando eingeben um beispielsweise die Anzahl der Nachkommastellen
  227. festzulegen oder die Ausgaben auf dem Drucker auszugeben. Es
  228. existieren momentan ca. 40 Kommandos. Die meisten Kommandos bestehen
  229. nur aus einem Wort wie beispielsweise "PrinterOn", andere benötigen
  230. noch ein weiteres Argument, beispielsweise die Anzahl der
  231. Nachkommastellen. Groß- und Kleinschreibung wird unterschieden, man
  232. muß also "PrinterOn" eingeben, "printeron" oder "PRINTERON" führen zu
  233. einer Fehlermeldung. Konnte ein Kommando ausgeführt werden, so erfolgt
  234. keine Meldung und das Programm erwartet sofort die nächste Eingabe.
  235. Anderenfalls wird eine entsprechende Fehlermeldung ausgegeben.
  236.  
  237. Jetzt zu den Kommandos im einzelnen:
  238.  
  239. Quit
  240. ----
  241. Beendet das Programm. Statt Quit kann man auch einfach einen Punkt
  242. eingeben.
  243.  
  244. Help
  245. ----
  246. Gibt einen kurzen Hilfstext aus. Statt Help kann man auch ? benutzen.
  247.  
  248. ShowCommands
  249. ------------
  250. Listet alle möglichen Kommandos auf.
  251.  
  252. ShowFunctions
  253. -------------
  254. Listet alle bekannten elementaren Funktionen wie sin() usw. auf.
  255. Auf diese Funktionen wird weiter unten noch näher eingegangen.
  256.  
  257. ShowValues
  258. ----------
  259. Listet alle momentan vorhandenen Werte (Variablen bzw. Konstanten) auf.
  260.  
  261. PrinterOn
  262. ---------
  263. Gibt fortan alle Ergebnisse auf dem Drucker aus. Bevor man dieses
  264. Kommando benutzt sollte man den Drucker eingeschaltet haben. Bei der
  265. Druckerausgabe wird die mit dem Workbenchprogrammen "Printer" bzw.
  266. "Preferences" eingestellte Druckbreite benutzt. Diese Breite
  267. (PrintRightMargin-PrintLeftMargin) wird ebenfalls bei Ausgaben in eine
  268. Datei verwendet.
  269.  
  270. PrinterOff
  271. ----------
  272. Die Ergebnisse werden nicht mehr zum Drucker geschickt.
  273.  
  274. OpenFile <name>
  275. ---------------
  276. Die Ergebnisse werden fortan in die Datei mit dem Namen name
  277. geschrieben. Für diese Datei wird das gleiche Format wie für die
  278. Druckerausgabe benutzt.
  279.  
  280. CloseFile
  281. ---------
  282. Die zuvor mit OpenFile geöffnete Datei wird geschlossen,
  283. die Ergebnisse werden nicht mehr in diese Datei geschrieben.
  284.  
  285. PrintAll
  286. --------
  287. Dieses Kommando ist von Bedeutung, wenn die Ergebnisse zum Drucker
  288. geschickt oder in eine Datei geschrieben werden. Es bewirkt, daß vor
  289. der Ausgabe des Ergebnisses der eingegebene Ausdruck nochmal
  290. wiederholt wird. Dadurch  hat man auf dem Papier später nicht nur die
  291. Ergebnisse stehen, sondern auch, was eingegeben wurde.
  292.  
  293. PrintResult
  294. -----------
  295. Das Gegenteil von PrintAll. Es wird nur das Ergebnis ausgegeben.
  296.  
  297. TotalDigits <n>
  298. -----------
  299. Ergebnisse werden mit n Gesamtziffern angezeigt. Die
  300. Zahl n muß zwischen 1 und 14 liegen.
  301.  
  302. DigitsBehindPoint <n>
  303. -----------------
  304. Es werden n Nachkommastellen angezeigt. Bei naturwissenschaftlichen
  305. Rechnungen wird man in der Regel TotalDigits und DigitsBehindPoint
  306. auf den gleichen Wert, z.B. auf acht, setzen um immer acht Stellen
  307. angezeigt zu bekommen. Wenn man mit Geld rechnet ist es dagegen
  308. sinnvoll DigitsBehindPoint auf zwei zu setzen um nicht Bruchteile
  309. einen Pfennigs angezeigt zu bekommen. Die Anzahl der Nachkommastellen
  310. ist natürlich durch die Zahl der Gesamtstellen eingeschränkt und muß
  311. zwischen 0 und 14 liegen.
  312.  
  313. ExponentOn
  314. ----------
  315. Ergebnisse werden in der Exponentialdarstellung ausgegeben.
  316. Statt 1234.56 also 1.23456E3
  317.  
  318. ExponentOff
  319. -----------
  320. Die Exponentialdarstellung wird nur benutzt, wenn die Zahl zu groß für
  321. die normale Darstellung ist.
  322.  
  323. Format <Gesamtstellen.NachkommastellenE>
  324. ------
  325. Oft muß man die Gesamtstellen, Nachkommastellen und die
  326. Zahlendarstellung (Normal- oder Exponentialdarstellung) gleichzeitig
  327. verändern. Um dies zu vereinfachen gibt es den Befehl Format. Die
  328. erste Zahl, die dem Kommando Format folgt, gibt die Gesamtziffernzahl
  329. an. Dann folgt ein Punkt und die Zahl der Nachkommastellen. Folgt
  330. zusätzlich noch ein E, so wird die Exponentialdarstellung benutzt,
  331. anderenfalls nicht. Die Zahl vor oder hinter dem Punkt kann auch
  332. weggelassen werden, dann wird die alte Einstellung beibehalten.
  333.  
  334. Einige Beispiele:
  335.  
  336. Format 8.2
  337. Es werden maximal 8 Gesamtstellen und 2 Nachkommastellen angezeigt.
  338.  
  339. Format 12.14
  340. Es werden 12 Gesamtstellen und 11 Nachkommastellen angezeigt. Ja 11,
  341. denn es ist immer mindestens eine Vorkommastelle vorhanden, und die
  342. Zahl der Gesamtstellen ist ja hier auf 12 beschränkt.
  343.  
  344. Format 8E
  345. Es werden 8 Gesamtstellen in exponentieller Darstellung angezeigt.
  346.  
  347. Wie gesagt, den Befehl Format braucht man nicht zu verwenden, statt
  348. dessen kann man auch TotalDigits, DigitsBehindPoint und ExponentOn
  349. bzw. ExponentOff benutzen.
  350.  
  351. AutoExpoOn
  352. ----------
  353. Dieses Kommando bewirkt, daß bei Ergebnissen, die betragsmäßig kleiner
  354. als eins sind automatisch die Exponentialdarstellung benutzt wird.
  355. Statt 0.0123456 erhält man also 1.23456xxE-2 als Ergebnis. Dadurch ist
  356. sichergestellt, daß das Ergebnis immer mit so vielen Stellen angezeit
  357. wird, wie man mit dem Kommando TotalDigits festgelegt hat.
  358. Insbesondere weiß man so immer, ob es sich bei dem Ergebnis wirklich
  359. um Null oder nur um eine sehr kleine Zahl handelt.
  360.  
  361. AutoExpoOff
  362. -----------
  363. Zahlen, die Betragsmäßig kleiner als eins sind werden in normaler
  364. Darstellung angezeigt. (Sofern nicht vorher der Befehl ExponentOn
  365. gegeben wurde.) Bei zwei Nachkommastellen erhält man also als Ergebnis
  366. 0.00 statt z.B. 1.23E-3 . Wenn man z.B. mit Geldbeträgen rechnet ist
  367. dies ok, da einen Bruchteile eines Pfennigs nicht interessieren.
  368.  
  369. LeftJustify
  370. -----------
  371. Das Ergebnis wird linksbündig ausgerichtet. Das bedeutet daß jeweils
  372. die ersten Ziffern der Ergebnisse übereinander stehen.
  373.  
  374. RightJustify
  375. ------------
  376. Das Ergebnis wird rechtsbündig ausgerichtet. Die letzten Ziffern der
  377. Ergebnisse stehen jeweils übereinander. Beim Rechnen mit Geldbeträgen
  378. und zwei Nachkommastellen stehen die Pfennige also übereinander.
  379.  
  380. SetFillChar <x>
  381. ---------------
  382. Als Füllzeichen wird das Zeichen x verwendet. Das ist nur von
  383. Bedeutung, wenn PrintAll gewäht ist. Mit dem Füllzeichen wird der Raum
  384. zwischen der Eingabe und dem ausgegebenen Resultat ausgefüllt. Will
  385. man das Leerzeichen als Füllzeichen benutzen, so muß man " " statt des
  386. Leerzeichens eingeben.
  387.  
  388. Beispiel:
  389.  
  390. SetFillChar .
  391. Der Punkt wird als Füllzeichen verwendet, das verbessert die
  392. Lesbarkeit des Ausdrucks.
  393.  
  394. SetFillChar
  395. Kein Füllzeichen verwenden, das Ergebnis wird direkt hinter die
  396. Eingabe geschrieben.
  397.  
  398. SetFillChar " "
  399. Leerzeichen verwenden.
  400.  
  401. SaveConfig [fileName]
  402. ---------------------
  403. Hiermit kann man das momentane Ausgabeformat abspeichern. Wird kein
  404. Filename angegeben, so wird der Name "s:ROM20.config" benutzt.
  405.  
  406. LoadConfig [fileName]
  407. ---------------------
  408. Lädt die Einstellungen wieder ein. Wird kein Filename angegeben, so
  409. wird ebenfalls der Name "S:ROM20.config" verwendet. Existiert im
  410. Verzeichnis S: die Datei ROM20.config, so wird diese beim
  411. Programmstart automatisch geladen, anderenfalls werden die im Programm
  412. festgelegten Vorgabeeinstellungen benutzt.
  413.  
  414. SaveValues [filename]
  415. ---------------------
  416. Mit diesem Kommando werden alle momentan vorhandenen Werte, also
  417. Konstanten und Variablen, in eine Datei abgespeichert. Wird kein
  418. Dateiname angegeben, so wird die Vorgabe "S:ROM20.values" benutzt. Es
  419. werden nur die Werte abgespeichert, die entweder vorher eingelesen
  420. wurden, oder denen ein Wert mit dem Zuweisungszeichen ":=" zugewiesen
  421. wurde. Werte, denen ein Wert mit dem einfachen Gleichheitzeichen
  422. zugewiesen wurde, werden nicht abgespeichert.
  423. Nach den Anweisungen
  424. Pi := 2*arcsin(1)
  425. piViertel = Pi/4
  426. wird also der Wert Pi in die Datei abgespeichert, piViertel aber
  427. nicht. Dadurch wird verhindert, daß irgendwelche unbedeutenden
  428. Hilfswerte, deren Bedeutung man doch bald vergessen hat, in der Datei
  429. Platz wegnehmen. Die Datei ist eine Textdatei, die mit einem ASCII-
  430. Texteditor verändert werden kann, so kann man Werte löschen,
  431. korrigieren usw. Jede Zeile dieser Datei definiert einen Wert und
  432. sieht folgendermaßen  aus:
  433. <name> = <wert> ; [ Kommentar ]
  434. Beispiel:
  435.  
  436. Lichtgeschwindigkeit = 2.9979E8 ; in m/s
  437.  
  438. Die Datei darf bis zu 2048 Zeilen haben, eine Zeile darf bis zu 256
  439. Zeichen lang sein.
  440.  
  441. LoadValues [fileName]
  442. ---------------------
  443. Lädt die Werte aus der Datei ein, so daß mit ihnen fortan gerechnet
  444. werden kann. Wird keine Datei angegeben, so wird der Vorgabename
  445. "S:ROM20.values" benutzt. Existiert die Datei ROM20.Values im
  446. Verzeichnis S:, so wird diese beim Programmstart automatisch
  447. eingelesen. Es ist praktisch, wenn man in dieser Datei einige oft
  448. benötigte Werte definiert hat, so daß man mit ihnen jederzeit Rechnen
  449. kann. Seltener benutzte Werte kann man eventuell in einer separaten
  450. Datei abspeichern und bei Bedarf laden. So kann man z.B. auch
  451. spezielle Dateien anlegen, die etwas die Kalorienzahl oder Preise von
  452. Lebensmitteln enthalten. LoadValues löscht nicht die bereits
  453. vorhandenen Werte. Es werden nur neue Werte dazugeladen und
  454. eventuell existierende überschrieben.
  455.  
  456. DisposeAllValues
  457. ----------------
  458. Diese Anweisung löscht alle vorhandenen Werte.
  459.  
  460. RemoveValue <name>
  461. ------------------
  462. Löscht den angegebenen Wert.
  463.  
  464. FormulaOn <formel>
  465. ------------------
  466. Oft muß man eine bestimmte Formel einer Variablen mit verschiedenen
  467. Werten wiederholt durchrechnen. Statt in der Formel nun jedesmal den
  468. Wert der Variablen an allen Stellen, an denen sie auftaucht, zu
  469. verändern,  kann man FormulaOn <formel> benutzen. "formel" ist ein
  470. beliebiger mathematischer Ausdruck, in dem die Variable "x" vorkommt.
  471. Nachdem man das Kommando FormulaOn <formel> eingegeben hat, wird jede
  472. folgende Eingabe berechnet, und dann der Variablen x zugewiesen.
  473. Darauf wird die Formel berechnet, und zum Schluß das Resultat dieser
  474. Formel ausgegeben.
  475.  
  476. Ein ganz einfaches Beispiel: Wir wollen die dritte Potenz einiger
  477. Zahlen berechnen:
  478.  
  479. FormulaOn x*x*x
  480.  
  481. Eingabe     Ergebnis
  482. 2           8
  483. 8.2-5.2     27
  484. 0.5         0.0125
  485. 2+3         125
  486.  
  487. Interessant wird das natürlich erst, wenn man kompliziertere
  488. Funktionen berechnen will, beispielsweise will man eine Wertetabelle
  489. fÜr ein Polynom anlegen. Als Variablenname wird immer "x" benutzt. Man
  490. hätte natürlich eine freie Wahl des Variablennames zulassen können,
  491. aber daß hätte die Sache nur unnötig kopliziert. Bedenken muß man
  492. aber, daß die Variable x durch das Benutzen einer Formel verändert
  493. wird.
  494.  
  495. FormulaOff
  496. ----------
  497. Die Formel wird nicht mehr benutzt, man erhält als Ergebnis
  498. wieder das Resultat der Eingabe.
  499.  
  500. Info
  501. ----
  502. Dieses Kommando gibt eine Übersicht über alle Einstellungen. So wird
  503. z.B. das Zahlenformat angegeben, und es wird ausgegeben ob momentan
  504. eine Formel auf die Eingaben angewendet wird oder nicht. Außerdem
  505. werden einige statistische Angaben angezeigt. Wichtig ist die erste
  506. Zeile. Hier sollte normalerweise "Status: All OK" stehen. Steht dort
  507. etwas anderes, ist ein schwerwiegender Fehler aufgetreten und es ist
  508. am besten das Programm zu beenden und neu zu starten.
  509.  
  510. Dieses Programm besitzt auch einige statistische Funktionen wie
  511. Mittelwert, Varianz usw. Gibt man eines der folgenden Kommandos wird
  512. dieser statistische Wert jeweils ausgegeben und gleichzeitig der
  513. Variablen "#" zugewiesen, so daß man mit diesem Wert dann sofort
  514. weiterechnen kann.
  515.  
  516. SumOfInputs
  517. -----------
  518. Liefert die Summe aller Ergebnisse.
  519.  
  520. StatisticsCounter
  521. -----------------
  522. Ein Zähler, der einem sagt wie viele Ergebnisse man
  523. bereits erhalten hat.
  524.  
  525. MeanValue
  526. ---------
  527. Mittelwert aller Ergebnisse. Dies entspricht
  528. SumOfInputs/StatisticsCounter
  529.  
  530. SumOfSquares
  531. ------------
  532. Summe aller quadrierten Ergebnisse.
  533.  
  534. Variation
  535. ---------
  536. Varianz aller Ergebnisse.
  537.  
  538. StandartDeviation
  539. -----------------
  540. Standardabweichung oder Streuung der Ergebnisse.
  541. Das ist gerade die Quadratwurzel der Varianz.
  542.  
  543. ResetStatistics
  544. ---------------
  545. Setzt alle statistischen Werte zurück, so als
  546. ob das Programm gerade erst gestartet worden wäre.
  547.  
  548. StatisticsUndo
  549. --------------
  550. Der Wert der letzten Eingabe wird für die statistischen
  551. Berechnungen ignoriert. Das ist sinnvoll, wenn man sich vertippt hat.
  552.  
  553. StatisticsOff
  554. -------------
  555. Es werden die Statistikwerte eingefroren. Das ist nützlich, wenn man
  556. statistische Berechnungen begonnen hat, und mittendrin einige
  557. Nebenrechnungen machen will, die natürlich nicht in die statistischen
  558. Berechnungen eingehen dürfen.
  559.  
  560. StatisticsOn
  561. ------------
  562. Ab jetzt werden die statistischen Berechnungen wieder fortgeführt.
  563. Bei Programmstart ist die Statistik immer eingeschaltet.
  564.  
  565.  
  566. Elementare mathematische Funktionen
  567. -----------------------------------
  568. In wesentlichen handelt es sich hierbei um bekannte Funktionen, die
  569. von dem mathematischen Koprozessor oder der MathIEEEDoubTrans.library
  570. berechnet werden. Argumente oder Ergebnisse von Winkelfunktionen wie
  571. sin() oder arctan() sind immer auf Radiant bezogen. Will man z.B. den
  572. Sinus von 30 Grad berechnen, so muß man "sin(DegToRad(30))" eingeben.
  573.  
  574. DegToRad()
  575. ----------
  576. Wandelt einen in Grad angegebenen Winkel in Radiant um. Das gleiche
  577. erreicht man durch "*Pi/180"
  578.  
  579. RND()
  580. -----
  581. Produziert Zufallszahlen. Das Argument muß eine GANZE Zahl zwischen 1
  582. und MAX(INTEGER) sein. RND(n) liefert eine Zufallszahl zwischen 0 und
  583. (n-1). (RND(6)+1) simuliert also einen Würfel.
  584.  
  585. RadToDeg()
  586. ----------
  587. Wandelt einen in Radiant angegebenen Winkel in Grad um.
  588. "RadToDeg(x)" entspricht also "x/Pi*180"
  589.  
  590. abs()
  591. -----
  592. Ergibt den Absolutwert oder Betrag des Argumentes.
  593.  
  594. arccos()
  595. --------
  596. Die Arcus-Cosinus-Funktion. Inverse Funktion des Cosinus.
  597. Der Betrag des Argumentes darf nicht größer als eins sein.
  598.  
  599. arcsin()
  600. --------
  601. Die Arcus-Sinus-Funktion. Inverse Funktion des Sinus.
  602. Der Betrag des Argumentes darf nicht größer als eins sein.
  603.  
  604. arctan()
  605. --------
  606. Die Arcus-Tanges-Funktion. Inverse Funktion des Tangens.
  607.  
  608. artanh()
  609. -------
  610. Die Arcus-Tangens-Hyperbolicus-Funktion. Inverse Funktion des Tanges-
  611. Hyperbolicus.
  612.  
  613. ceil()
  614. ------
  615. Liefert die nächste ganze Zahl die größer oder gleich dem Argument
  616. ist. Libraryfunktion, Name kommt von ceiling, engl. für Decke.
  617.  
  618. cos()
  619. -----
  620. Cosinus
  621.  
  622. cosh()
  623. ------
  624. Cosinus-Hyperbolicus
  625.  
  626. entier()
  627. --------
  628. Liefert die nächste ganze Zahl, die kleiner oder gleich dem Argument
  629. ist. Die Berechnung erfolgt über die OBERON-Funktion ENTIER(), daher
  630. muß der Betrag des Arguments kleiner als MAX(LONGINT) sein. Eigentlich
  631. sollte man lieber floor() benutzen, da man dann diese
  632. Bereicheinschränkung nicht beachten muß.
  633.  
  634. exp()
  635. -----
  636. Exponentialfunktion zur Basis e=2.7...
  637.  
  638. fac()
  639. -----
  640. Fakultät. Das Argument muß eine ganze Zahl zwischen 0 und 170 sein.
  641.  
  642. floor()
  643. -------
  644. Liefert die nächste ganze Zahl kleiner oder gleich dem Argument.
  645. Libraryfunktion, Name kommt von floor engl. Boden, siehe auch ceil()
  646.  
  647. id()
  648. ----
  649. Identität. id(x)=x
  650.  
  651. int()
  652. -----
  653. Liefert die nächste ganze Zahl, die dichter bei Null liegt als das
  654. Argument oder mit dem Argument identisch ist.
  655.  
  656. jump()
  657. ------
  658. (Heaviside'sche) Sprungfunktion. Liefert 1 für Argumente die größer
  659. als Null sind, sonst Null. Diese Funktion ist recht nützlich um
  660. bestimmte Stellen eines Funktionsgraphen auszublenden. In der
  661. Elektronik kommt sie unter dem namen E() vor, ich habe sie jump()
  662. genannt um Verwechslungen mit der Exponentialfunktion zu verhindern
  663. und um den Namen "E" für Zahlenwerte freizuhalten.
  664.  
  665. ln()
  666. ----
  667. Der natürliche Logarithmus zur Basis e=2.7...
  668.  
  669. log()
  670. -----
  671. Der Zehnerlogarithmus (dekadischer Logarithmus) zur Basis 10.
  672. log() ist identisch mit log10()
  673.  
  674. log2()
  675. ------
  676. Logarithmus zur Basis 2.
  677.  
  678. round()
  679. -------
  680. Rundung auf die nächste ganze Zahl.
  681. round(x) entspricht floor(x+0.5).
  682.  
  683. sin()
  684. -----
  685. Sinusfunktion. Argumente sind wie bei allen Winkelfunktionen auf
  686. Radiant bezogen.
  687.  
  688. sinh()
  689. ------
  690. Sinus-Hyperbolicus
  691.  
  692. sqr()
  693. -----
  694. Quadrat. sqr(x)=x*x
  695.  
  696. sqrt()
  697. ------
  698. Quadratwurzel. sqrt(x*x)=abs(x). Das Argument darf nicht negativ sein.
  699.  
  700. tan()
  701. -----
  702. Tangens.
  703.  
  704. tanh()
  705. ------
  706. Tangens Hyperbolicus
  707.  
  708. tentox()
  709. --------
  710. Ergibt 10^x
  711.  
  712. twotox()
  713. --------
  714. Ergibt 2^x
  715.  
  716.  
  717. Fehler
  718. ------
  719. Natürlich  kann  ich  nicht  garantieren,  daß  die  Berechnungen  des
  720. Programmes  in  allen  Fällen  richtig  sind.  Auch  bin  ich    nicht
  721. verantwortlich  für  irgendwelche Schäden, die durch Verwendung dieses
  722. Programms oder dessen Berechnungen entstehen. Sie haben ja,  wie  oben
  723. gesagt,  zwei Wochen Zeit um das Programm  ausführlich zu testen bevor
  724. sie  die  Sharewaregebühr  bezahlen   müssen.    Die    Zahlung    der
  725. Sharewaregebühr    gibt    Ihnen  nicht  das  Recht  auf  irgendwelche
  726. zukümftigen Versionen des  Programms,  auch  wenn  sich  herausstellen
  727. sollte,    daß    das   Programm  Fehler  enthält.  Sie  bezahlen  die
  728. Sharewaregebühr für die Ihnen  vorliegende  und  von  Ihnen  getestete
  729. Programmversion!    Ob  es  von  Fehlern  bereinigte  oder  erweiterte
  730. Versionen des Programmes (eventuell Pulldown-Menüs,  Funktionsplotter,
  731. nummerische  Integration  usw.) geben  wird  hängt natürlich davon ab,
  732. wie viele Personen die Sharewaregebühr  bezahlen.  Solange  ich  nicht
  733. wenigstens  meine Unkosten mit der Sharewaregebühr decken kann wird es
  734. garantiert keine erweiterte Version geben!
  735.  
  736. Stefan Salewski, Stade, den 24.04.92
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.